/*
 * StrUtils.h
 *
 */

#ifndef STRUTILS_H_
#define STRUTILS_H_

#include <string>
#include <sstream>

class StrUtils {
	private:
		StrUtils();
		virtual ~StrUtils();
	public:
		/**
		 * Devuelve una cadena con el valor del tipo pasado como parametro
		 */
		template<typename T>
		static std::string toString(const T& t) {
			std::ostringstream stream;
			stream << t;
			return stream.str();
		}

		/**
		 * Devuelve un objeto del tipo T con el contenido de la cadena
		 */
		template<typename T>
		static T fromString(const std::string& s) {
			std::istringstream stream(s);
			T t;
			stream >> t;
			return t;
		}

		static std::string toUpper(const std::string& string);
};

#endif  /* STRUTILS_H_ */
